package de.uni.webprog.server;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

public class GetConnected {

	//private static GetConnected instance = null;
	private Connection conn = null;

	// Hostname
	private static String dbHost = "localhost";

	// Port -- Standard: 3306
	private static String dbPort = "";

	// Datenbankname
	private static String database = "GWTProjekt";

	// Datenbankuser
	private static String dbUser = "root";

	// Datenbankpasswort
	private static String dbPassword = "michael";

	public GetConnected() {
		try {

			// Datenbanktreiber für ODBC Schnittstellen laden.
			// Für verschiedene ODBC-Datenbanken muss dieser Treiber
			// nur einmal geladen werden.
			Class.forName("com.mysql.jdbc.Driver");

			// Verbindung zur ODBC-Datenbank 'sakila' herstellen.
			// Es wird die JDBC-ODBC-Brücke verwendet.
			conn = DriverManager.getConnection("jdbc:mysql://" + dbHost + ":"
					+ dbPort + "/" + database + "?" + "user=" + dbUser + "&"
					+ "password=" + dbPassword);
		} catch (ClassNotFoundException e) {
			System.out.println("Treiber nicht gefunden");
		} catch (SQLException e) {
			System.out.println("Connect nicht moeglich");
		}
	}

	private Connection getInstance() {
		if (conn == null)
			new GetConnected();
		return conn;
	}

	/**
	 * Liefert den Nachname, Vornamen
	 */
	public ArrayList<String> getPaket(String user) {
		conn = getInstance();
		ArrayList<String> name = new ArrayList<String>();

		if (conn != null) {
			// Anfrage-Statement erzeugen.
			Statement query;
			try {
				query = conn.createStatement();

				// Ergebnistabelle erzeugen und abholen.
				String sql = "SELECT ``.`domain_address`FROM sedo_domain "
						+ "ORDER BY `sedo_domain`.`domain_address` ASC";
				ResultSet result = query.executeQuery(sql);

				// Ergebnissätze durchfahren.
				while (result.next()) {
					name.add(result.getString("domain_address"));
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		return name;
	}
	
	public boolean getLogin(String user) {
		conn = getInstance();
		boolean registered = false;
		if (conn != null) {
			// Anfrage-Statement erzeugen.
			Statement query;
			try {
				query = conn.createStatement();

				// Ergebnistabelle erzeugen und abholen.
				String sql = "SELECT `E-Mail` FROM tbl_user"
						+ "where `E-Mail` = " + user;
				ResultSet result = query.executeQuery(sql);

				// Ergebnissätze durchfahren.
				if (result != null){
					
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		return registered;
	}
}